package com.ai.module.user.domain.entity;

import com.ai.module.chat.common.domain.BaseEntity;
import com.ai.module.mj.constant.enums.TaskAction;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull;
import org.springframework.util.StringUtils;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author: MrHe
 * @create: 2023-09-02 10:22
 * @description: 用户上传的图片
 **/
@Data
@Slf4j
@TableName("ai_product_record")
public class AIProductRecordEntity extends BaseEntity {

    @TableField("user_id")
    private String userId;

    @TableField("question")
    private String question;

    @TableField("answer")
    private String answer;

    @TableField("cost_time")
    private Long costTime;

    @TableField("business_id")
    private String businessId;

    @TableField("user_file")
    private String userFile;

    @TableField("ai_file")
    private String aiFile;

    @TableField("action")
    private TaskAction action;

    public  void setAnswer(String answer) {
        String originalAnswer =answer;
        if (StringUtils.hasText(answer)){
            answer= answer
                    .replaceAll("（","(")
                    .replaceAll("）",")");
            answer = getNoHttpAnswer(answer);
            while (answer.contains("()")){
                answer=answer.replace("()","") ;
            }
            log.info("setAnswer 原始数据[{}], 新的数据 [{}]",originalAnswer,answer);
        }

        this.answer = answer;
    }

    @NotNull
    private static String getNoHttpAnswer(String answer) {
        try {
            String regex ="\\(http[^)]*\\)";
            Pattern compile = Pattern.compile(regex);
            Matcher matcher = compile.matcher(answer);
            if (matcher.find()){
                String group = matcher.group();
                answer = answer.replace(group,"");
            }
            if (compile.matcher(answer).find()){
               return getNoHttpAnswer(  answer);
            }
            return answer;
        }catch (Exception ex){
            log.error("设置 getNoHttpAnswer answer[{}] error [{}], ex[{}]",answer,ex,ex.getMessage());
            return answer;
        }

    }

    public static void main(String[] args) {
        String text ="[\"1 (http://www.baidu.com), (https:// ?artist%20Hayao%20Miyazaki)一个可爱的(hello)小女孩正在快乐地奔跑，手里拿着鲜花，穿着一件蓝色连衣裙，胸前有一条黄色的缎带。她有一双大眼睛，一张微笑的脸，棕色的头发和长长的卷发。背景是绿色的草地和蓝色的天空。风格是简单的卡通和动漫，在风格的Q版本可爱的漫画。它可以用来制作带有高清晰度艺术作品的儿童插图书。——ar 43:64\",\"2,一头长发的可爱女孩，面带微笑，手里拿着鲜花。她穿着蓝色连衣裙，粉色鞋子，后脑勺系着黄色缎带。背景是晴朗的天空下的绿草。在日本动漫的风格中，这一幕捕捉到了一个可爱的时刻，她向你跑来，一边拿着一束野花，一边展示她可爱的笑容--第43:64页\",\"3,一个可爱的小女孩手里拿着鲜花，穿着蓝色长袖和粉色鞋子，在晴朗的天空下的草地上快乐地奔跑，笑容灿烂。背景以平面插图的动漫风格为特色。她有一双大眼睛，中等长度的头发，棕色卷发，皮肤白皙，脖子上系着浅黄色的缎带，手里拿着一束野花。以动漫的风格--第43:64页\",\"4,一个可爱的小女孩手捧鲜花，穿着蓝色连衣裙和粉色鞋子，开心地奔跑着，笑容满面，长发飘飘，亮黄色的大眼睛和卷曲的棕色短直刘海。简单的背景是[宫崎骏]的风格(https://goo.gl/search?artist%20Hayao%20Miyazaki)，具有动漫风格和平面彩色插图。Qversion漫画艺术设计具有高清分辨率和2D平面漫画设计，线条简单，画面清晰，色彩明亮，气氛清新。她把那束雏菊举到胸前，闭上一只眼睛抬头看--第43:64页\"]";

        String noHttpAnswer = getNoHttpAnswer(text);
        System.out.println("noHttpAnswer = " + noHttpAnswer);
    }
}
